#ifndef TYPETRAITS_h
#define TYPETRAITS_h

namespace dpsm {

struct True {
    enum { value = 1 };
};
struct False {
    enum {value = 0};
};

template< typename T1, typename T2>
struct IsSameType {
    typedef False Result;
};

template< typename T1>
struct IsSameType<T1,T1> {
    typedef True Result;
};

template<typename T>
struct StaticAssert;

template<>
struct StaticAssert< True > {};


template<class T>
struct Type2Type {
    typedef T Result;
};

}

#endif
